package mt;

import java.util.Scanner;

/**
 * @author zhangmin
 * @create 2022-03-17 20:57
 * dp
 * dp[j][k]表示前i辆车中j辆派到A地，k辆派到B地的最大利润
 * B地的车够了，则选择将第i辆派到A或者不派车i
 * A地的车够了，则选择将第i辆车派到B或者不派车
 * 两地车都不够的时候，选择i给A或B或不派
 */
public class meituan2021_2_4 {
    public static void main(String[] args) {
        Scanner cin=new Scanner(System.in);
        int n=cin.nextInt();
        int aNeed=cin.nextInt();
        int bNeed=cin.nextInt();
        int[][] dp=new int[aNeed+1][bNeed+1];
        for (int i = 1; i <=n; i++) {
            int a=cin.nextInt();
            int b=cin.nextInt();
            //派到A地的车j最大就只需要aNeed辆，当i<aNeed时最多只能派i辆车。最小也要总共到aNeed辆，剩下的最多还有n-i辆待分配，所以在前i辆中最少要分配aNeed-i+i辆给A
            for (int j = Math.min(aNeed,i); j >=Math.max(0,aNeed-n+i) ; j--) {
                //对派往B地的车。最少：AB两地一共需要的车，去除掉在剩下的n-i辆中已经分配给A地的需要aNeed-j,bNeed-(n-i-(aNeed-j))
                for (int k = Math.min(bNeed,i-j); k >= Math.max(0,aNeed+bNeed-n+i-j) ; k--) {
                    if(j==0&&k==0){
                        continue;
                    }
                    if(k==0){
                        //B地的车够了，则选择将第i辆派到A或者不派车i
                        dp[j][k]=Math.max(dp[j][k],dp[j-1][k]+a);
                    }else if(j==0){
                        //A地的车够了，则选择将第i辆车派到B或者不派车
                        dp[j][k]=Math.max(dp[j][k],dp[j][k-1]+b);
                    }else {
                        dp[j][k]=Math.max(dp[j][k],Math.max(dp[j-1][k]+a,dp[j][k-1]+b));
                    }
                }
            }
        }
        System.out.println(dp[aNeed][bNeed]);
    }
}
